<?php
defined('_VISIT_URL_') or exit('No direct script access allowed');

class auto {

	//初始化自动化日志信息，获取日志编号
	public function getAutoLogId() {
		if (getPost('token') != 'C8C4D56E14F62C79FB1E7274901912A1') {
			return util::getValidError('token异常');
		}

		if (empty(getPost('autoer')) || valid::isWicked(getPost('autoer'))) {
			return util::getValidError('自动化端用户名格式错误');
		}

		$rst = new sqlcon();

		$uuid = util::getUUID();

		$rst->addCollect('logid', $uuid);
		$rst->addCollect('channel', '0');
		$rst->addCollect('module', '');
		$rst->addCollect('serverflag', '');
		$rst->addCollect('operater', getPost('autoer'));
		$rst->addCollect('autoer', '');
		$rst->addCollect('status', '0');
		$rst->addCollect('result', '');
		$rst->addCollect('starttime', date('Y-m-d H:i:s'));
		$rst->addCollect('endtime', '');
		$rst->addCollect('remark', '');
		$rst->insertInfo('autolog');

		$result = util::getSuccess('success');
	    $result['logid'] = $uuid;
		return $result;
	}

	//提交自动化执行日志
	public function submitAutoLog() {
		if (getPost('token') != 'C8C4D56E14F62C79FB1E7274901912A1') {
			return util::getValidError('token异常');
		}

		if (empty(getPost('logid'))) {
			return util::getValidError('日志编号格式错误');
		}

		if (empty(getPost('module')) || valid::isWicked(getPost('module'))) {
			return util::getValidError('功能模块格式错误');
		}

		if (empty(getPost('autoer')) || valid::isWicked(getPost('autoer'))) {
			return util::getValidError('自动化端用户名格式错误');
		}

		if (empty(getPost('content'))) {
			return util::getValidError('内容不能为空');
		}

		$rst = new sqlcon();

		//写入日志内容
		$contentFile = getPost('logid') . '.txt';
		$content = getPost('content');
		util::writeFile('upload/autolog', $contentFile, $content);

		//格式化提示结果与状态
		$result = $this->formatResult($content);
		$status = $result == '执行成功' ? '1' : '2';

		$rst->addCollect('module', getPost('module'));
		$rst->addCollect('autoer', getPost('autoer'));
		$rst->addCollect('status', $status);
		$rst->addCollect('result', $result);
		$rst->addCollect('endtime', date('Y-m-d H:i:s'));
		$rst->addCollect('logid', getPost('logid'));
		$rst->updateInfo('autolog');

		return util::getSuccess('success');
	}

	//根据日志内容返回提示结果
	protected function formatResult($content) {
		$result = '';
		$errorList1 = array('程序有误', '没有返回', '没有进入', '异常');
		$errorList2 = array('未登录成功');
		$errorList3 = array('ERROR');

		foreach ($errorList1 as $error) {
			if (strpos($content, $error) !== false) {
				$result .= '自动化程序错误';
				break;
			}
		}
		foreach ($errorList2 as $error) {
			if (strpos($content, $error) !== false) {
				$result .= empty($result) ? '网络不稳定' : '，网络不稳定';
				break;
			}
		}
		foreach ($errorList3 as $error) {
			if (strpos($content, $error) !== false) {
				$result .= empty($result) ? '公告提交异常' : '，公告提交异常';
				break;
			}
		}

		return empty($result) ? '执行成功' : $result;
	}
	
}